﻿/**
 * @name umi 的路由配置
 * @description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置
 * @param path  path 只支持两种占位符配置，第一种是动态参数 :id 的形式，第二种是 * 通配符，通配符只能出现路由字符串的最后。
 * @param component 配置 location 和 path 匹配后用于渲染的 React 组件路径。可以是绝对路径，也可以是相对路径，如果是相对路径，会从 src/pages 开始找起。
 * @param routes 配置子路由，通常在需要为多个路径增加 layout 组件时使用。
 * @param redirect 配置路由跳转
 * @param wrappers 配置路由组件的包装组件，通过包装组件可以为当前的路由组件组合进更多的功能。 比如，可以用于路由级别的权限校验
 * @param name 配置路由的标题，默认读取国际化文件 menu.ts 中 menu.xxxx 的值，如配置 name 为 login，则读取 menu.ts 中 menu.login 的取值作为标题
 * @param icon 配置路由的图标，取值参考 https://ant.design/components/icon-cn， 注意去除风格后缀和大小写，如想要配置图标为 <StepBackwardOutlined /> 则取值应为 stepBackward 或 StepBackward，如想要配置图标为 <UserOutlined /> 则取值应为 user 或者 User
 * @doc https://umijs.org/docs/guides/routes
 */
export default [
  {
    path: '/welcome',
    name: '首页',
    icon: 'smile',
    component: './Welcome',
  },
  {
    name: '系统管理',
    icon: 'BankOutlined',
    path: '/system',
    access: 'canAdmin',
    routes: [
      { path: '/system', redirect: '/system/developer/applications/list' },
      {
        name: '开发者工具',
        icon: 'BankOutlined',
        path: '/system/developer',
        access: 'canAdmin',
        routes: [
          {
            name: '服务器管理',
            icon: 'AppstoreAddOutlined',
            path: '/system/developer/applications/list',
            access: 'canAdmin',
            component: './Applications',
          },
          {
            name: '服务器授权',
            icon: 'AppstoreAddOutlined',
            path: '/system/developer/applications/auth',
            access: 'canAdmin',
            component: './Applications/Auth',
          },

          {
            name: '版本发布',
            icon: 'CloudUploadOutlined',
            path: '/system/developer/applications/publishflow',
            access: 'canAdmin',
            component: './PublishFlows',
          },
          {
            name: '子服务发布',
            icon: 'CloudUploadOutlined',
            path: '/system/developer/applications/publishagent',
            access: 'canAdmin',
            component: './PublishAgents',
          },
          {
            name: '执行',
            icon: 'CloudUploadOutlined',
            path: '/system/developer/applications/publishflow/:id',
            access: 'canAdmin',
            hideInMenu: true,
            component: './PublishFlowNodes'
          },

          {
            name: '查看',
            icon: 'CloudUploadOutlined',
            path: '/system/developer/applications/restore/:id',
            access: 'canAdmin',
            hideInMenu: true,
            component: './PublishFlowRestores'
          },
        ],
      },
      {
        path: '/system/basics',
        name: '权限管理',
        icon: 'AppstoreOutlined',
        routes: [
          { path: '/system/basics', redirect: '/system/basics/authorities/rolemanage' },
          {
            name: '菜单管理',
            icon: 'BarsOutlined',
            path: '/system/basics/authorities/menu',
            access: 'canAdmin',
            component: './Authorities/MenuManage',
          },
          {
            name: '组织架构',
            icon: 'ClusterOutlined',
            path: '/system/basics/authorities/organization',
            access: 'canAdmin',
            component: './Authorities/Organization',
          },
          {
            name: '职位管理',
            icon: 'IdcardOutlined',
            path: '/system/basics/authorities/positionmanage',
            access: 'canAdmin',
            component: './Authorities/PositionManage',
          },
          {
            name: '用户管理',
            icon: 'UserOutlined',
            path: '/system/basics/authorities/usermanage',
            access: 'canAdmin',
            component: './Authorities/UserManage',
          },
          {
            name: '角色管理',
            icon: 'UsergroupAddOutlined',
            path: '/system/basics/authorities/rolemanage',
            access: 'canAdmin',
            component: './Authorities/RoleManage',
          },


          {
            component: './404',
          },
        ],
      },


    ],
  },





  {
    path: '/',
    redirect: '/welcome',
  },

  // {
  //   name: 'CRM',
  //   path: '/crm/*',
  //   microApp: 'crm',
  //   hideInMenu: true,
  // },
  {
    name: '外部页面',
    path: '/extendpage/:id',
    component: './ExtendPage',
    hideInMenu: true,
    full: true,
    access: 'isRoot',
  },
  {
    path: '/user',
    layout: false,
    routes: [
      {
        name: 'login',
        path: '/user/login',
        component: './Login',
      },
    ],
  },
  {
    name: '模版编辑',
    path: '/templates/:id',
    component: './Templates/Edit',
    hideInMenu: true,
    full: true
  },
  {
    path: '*',
    layout: false,
    component: './404',
  },
];
